home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / prg_casm / snipview.zip / VIDMGR.H < prev    next >
C/C++ Source or Header  |  1996-07-11  |  6KB  |  169 lines

  1. /*
  2.  *  VIDMGR.H; Screen drawing, cursor and keyboard routines for text mode
  3.  *            16-bit and 32-bit MS-DOS, 16-bit and 32-bit OS/2, and 32-bit
  4.  *            Windows 95/NT applications.  Release 1.2.
  5.  *
  6.  *  This module written in March 1996 by Andrew Clarke and released to the
  7.  *  public domain.  Last modified in June 1996.
  8.  *
  9.  *  VidMgr has been compiled and tested with the following C compilers:
  10.  *
  11.  *    - Borland C++ (16-bit) for DOS 3.1
  12.  *    - Borland C++ (16-bit) for DOS 4.5
  13.  *    - Borland C++ (32-bit) for OS/2 1.0
  14.  *    - Cygnus GNU C (32-bit) for Windows 95/NT b14.0
  15.  *    - DJGPP GNU C (32-bit) for DOS 2.0
  16.  *    - EMX GNU C (32-bit) for OS/2 & DOS 0.9b
  17.  *    - IBM VisualAge C/C++ 3.0 (32-bit) for OS/2
  18.  *    - Microsoft C/C++ (16-bit) for OS/2 6.00a
  19.  *    - Microsoft C/C++ (16-bit) for DOS 8.00c
  20.  *    - Microsoft Quick C (16-bit) for DOS 2.50
  21.  *    - Microsoft Visual C/C++ (16-bit) for DOS 1.52
  22.  *    - WATCOM C/C++ (16-bit & 32-bit) for DOS 9.5
  23.  *    - WATCOM C/C++ (16-bit & 32-bit) for DOS 10.0
  24.  *    - WATCOM C/C++ (32-bit) for OS/2 10.0
  25.  *    - WATCOM C/C++ (32-bit) for Windows 95/NT 10.0
  26.  *    - HI-TECH Pacific C (16-bit) for DOS 7.51
  27.  *    - Symantec C/C++ (16-bit) for DOS 7.0
  28.  *    - Zortech C/C++ (16-bit) for DOS 3.0r4
  29.  */
  30.  
  31. #ifndef __VIDMGR_H__
  32. #define __VIDMGR_H__
  33.  
  34. #ifndef DOS
  35. #if defined(_QC) || defined(__DOS__) || defined(MSDOS) || defined(__MSDOS__)
  36. #define DOS
  37. #endif
  38. #endif
  39.  
  40. #ifndef OS2
  41. #if defined(__OS2__) || defined(OS_2)
  42. #define OS2
  43. #endif
  44. #endif
  45.  
  46. #ifndef EMX
  47. #if defined(__EMX__)
  48. #define EMX
  49. #endif
  50. #endif
  51.  
  52. #ifndef WINNT
  53. #if defined(__NT__)
  54. #define WINNT
  55. #endif
  56. #endif
  57.  
  58. #define BLACK         0x00
  59. #define BLUE          0x01
  60. #define GREEN         0x02
  61. #define CYAN          0x03
  62. #define RED           0x04
  63. #define MAGENTA       0x05
  64. #define PURPLE        MAGENTA
  65. #define BROWN         0x06
  66. #define LIGHTGRAY     0x07
  67. #define LIGHTGREY     LIGHTGRAY
  68. #define DARKGRAY      0x08
  69. #define DARKGREY      DARKGRAY
  70. #define LIGHTBLUE     0x09
  71. #define LIGHTGREEN    0x0a
  72. #define LIGHTCYAN     0x0b
  73. #define LIGHTRED      0x0c
  74. #define LIGHTMAGENTA  0x0d
  75. #define LIGHTPURPLE   LIGHTMAGENTA
  76. #define YELLOW        0x0e
  77. #define WHITE         0x0f
  78. #define BLINK         0x80
  79.  
  80. #define CURSORHIDE    0
  81. #define CURSORNORM    1
  82. #define CURSORHALF    2
  83. #define CURSORFULL    3
  84.  
  85. #define vm_mkcolor(fore, back)  ((fore) | (back << 4))
  86. #define vm_fore(attr)           (attr % 16)
  87. #define vm_back(attr)           (attr / 16)
  88. #define vm_mkcolour             vm_mkcolor
  89. #define vm_attrib               vm_paintbox
  90.  
  91. struct vm_info
  92. {
  93.     char attr;                  /* text attribute */
  94. #if defined(DOS)
  95.     char mode;                  /* video mode */
  96. #endif
  97.     char height;                /* screen height */
  98.     char width;                 /* screen width */
  99.     char ypos;                  /* y-coordinate */
  100.     char xpos;                  /* x-coordinate */
  101. #if defined(WINNT)
  102.     unsigned short dwSize;      /* 0=minimal; 49=half; 99=full */
  103.     int bVisible;               /* 0=cursor invisible */
  104. #else
  105.     char cur_start;             /* cursor start line */
  106.     char cur_end;               /* cursor end line */
  107. #endif
  108. };
  109.  
  110. extern struct vm_info vm_startup;
  111. extern char vm_curattr;
  112.  
  113. extern char vm_frame_blank[];
  114. extern char vm_frame_single[];
  115. extern char vm_frame_double[];
  116.  
  117. void vm_init(void);
  118. void vm_done(void);
  119. char vm_getscreenwidth(void);
  120. char vm_getscreenheight(void);
  121. short vm_getscreensize(void);
  122. void vm_gotoxy(char x, char y);
  123. char vm_wherex(void);
  124. char vm_wherey(void);
  125. int vm_kbhit(void);
  126. int vm_getch(void);
  127. void vm_paintclearbox(char x1, char y1, char x2, char y2, char attr);
  128. void vm_paintclearscreen(char attr);
  129. void vm_paintclearline(char row, char attr);
  130. void vm_paintcleareol(char row, char attr);
  131. void vm_paintbox(char x1, char y1, char x2, char y2, char attr);
  132. void vm_paintscreen(char attr);
  133. void vm_paintline(char row, char attr);
  134. void vm_painteol(char row, char attr);
  135. void vm_clearbox(char x1, char y1, char x2, char y2);
  136. void vm_clearscreen(void);
  137. void vm_clearline(char row);
  138. void vm_cleareol(char row);
  139. void vm_fillbox(char x1, char y1, char x2, char y2, char ch);
  140. void vm_fillscreen(char ch);
  141. void vm_fillline(char row, char ch);
  142. void vm_filleol(char row, char ch);
  143. void vm_clrscr(void);
  144. void vm_clreol(void);
  145. char vm_getchxy(char x, char y);
  146. char vm_getattrxy(char x, char y);
  147. void vm_xgetchxy(char x, char y, char *attr, char *ch);
  148. void vm_setattr(char attr);
  149. void vm_putattr(char x, char y, char attr);
  150. void vm_setcursorstyle(int style);
  151. void vm_putch(char x, char y, char ch);
  152. void vm_puts(char x, char y, char *str);
  153. void vm_printf(char x, char y, const char *format,...);
  154. void vm_printfcenter(char row, const char *format,...);
  155. void vm_printfbetween(char x1, char x2, char row, const char *format,...);
  156. void vm_xputch(char x, char y, char attr, char ch);
  157. void vm_xputs(char x, char y, char attr, char *str);
  158. void vm_xprintf(char x, char y, char attr, const char *format,...);
  159. void vm_xprintfcenter(char row, char attr, const char *format,...);
  160. void vm_xprintfbetween(char x1, char x2, char row, char attr, const char *format,...);
  161. void vm_horizline(char x1, char x2, char row, char attr, char ch);
  162. void vm_vertline(char y1, char y2, char col, char attr, char ch);
  163. void vm_frame(char x1, char y1, char x2, char y2, char attr, char *frame);
  164. void vm_gettext(char x1, char y1, char x2, char y2, char *dest);
  165. void vm_puttext(char x1, char y1, char x2, char y2, char *srce);
  166. void vm_getinfo(struct vm_info *v);
  167.  
  168. #endif  /* __VIDMGR_H__ */
  169.